package com.xique.door.biz.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.common.core.web.page.TableDataInfo;
import com.xique.door.bean.domain.CardDevice;
import com.xique.door.bean.domain.DCard;
import com.xique.door.bean.request.card.CardAddRequest;
import com.xique.door.bean.request.card.CardCommandSearchRequest;

import java.util.List;

/**
 * @author: caogq
 * @Date: 2022/2/25 16:34
 * @Description:
 */
public interface ICardBizService {

    /**
     * @description:  发行卡(一卡，多房屋)
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    AjaxResult addCard(CardAddRequest request);

    /**
     * @description:  注销卡片
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    AjaxResult deleteCard(Long cardId);

    /**
     * @description:  挂失
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    AjaxResult loss(Long cardId);

    /**
     * @description:  解绑
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    AjaxResult unLoss(Long cardId);

    /**
     * @description:  门卡下发
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    AjaxResult downCard(DCard card,List<CardDevice> cardDevices);

    /**
     * @description:  门卡批量下发
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    AjaxResult downCards(Long deviceId);

    /**
     * @description:  用户门卡列表查询
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    TableDataInfo selectCardList(DCard dCard);

    /**
     * @description:  用户门卡详情
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    AjaxResult detail(String id);

    /**
     * @description:  门卡同步记录查询
     * @author caogq
     * @date: 2022/3/5 10:46
     */
    TableDataInfo selectCardCommandList(CardCommandSearchRequest request);
}
